// $ANTLR 3.1.1 /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g 2009-01-29 12:01:23

package org.six11.olive3.net;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class Olive3Lexer extends Lexer {
    public static final int LETTER=16;
    public static final int T__23=23;
    public static final int Message=5;
    public static final int WS=21;
    public static final int Statement=10;
    public static final int OCT_ESC=19;
    public static final int Params=8;
    public static final int ESC_SEQ=17;
    public static final int UNI_ESC=18;
    public static final int NL=22;
    public static final int OliveStream=6;
    public static final int INT=15;
    public static final int EOF=-1;
    public static final int T__27=27;
    public static final int NUM=13;
    public static final int T__24=24;
    public static final int Statements=11;
    public static final int STR_CHARS=14;
    public static final int Required=9;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int HEX_DIGIT=20;
    public static final int Optional=7;
    public static final int ID=12;
    public static final int KeyVal=4;

    // delegates
    // delegators

    public Olive3Lexer() {;} 
    public Olive3Lexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public Olive3Lexer(CharStream input, RecognizerSharedState state) {
        super(input,state);

    }
    public String getGrammarFileName() { return "/Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g"; }

    // $ANTLR start "T__23"
    public final void mT__23() throws RecognitionException {
        try {
            int _type = T__23;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:7:7: ( '{' )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:7:9: '{'
            {
            match('{'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__23"

    // $ANTLR start "T__24"
    public final void mT__24() throws RecognitionException {
        try {
            int _type = T__24;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:8:7: ( '}' )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:8:9: '}'
            {
            match('}'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__24"

    // $ANTLR start "T__25"
    public final void mT__25() throws RecognitionException {
        try {
            int _type = T__25;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:9:7: ( '(' )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:9:9: '('
            {
            match('('); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__25"

    // $ANTLR start "T__26"
    public final void mT__26() throws RecognitionException {
        try {
            int _type = T__26;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:10:7: ( ')' )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:10:9: ')'
            {
            match(')'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__26"

    // $ANTLR start "T__27"
    public final void mT__27() throws RecognitionException {
        try {
            int _type = T__27;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:11:7: ( '=' )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:11:9: '='
            {
            match('='); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__27"

    // $ANTLR start "NUM"
    public final void mNUM() throws RecognitionException {
        try {
            int _type = NUM;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:82:5: ( ( INT )+ | ( INT )* '.' ( INT )+ )
            int alt4=2;
            alt4 = dfa4.predict(input);
            switch (alt4) {
                case 1 :
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:82:7: ( INT )+
                    {
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:82:7: ( INT )+
                    int cnt1=0;
                    loop1:
                    do {
                        int alt1=2;
                        int LA1_0 = input.LA(1);

                        if ( ((LA1_0>='0' && LA1_0<='9')) ) {
                            alt1=1;
                        }


                        switch (alt1) {
                    	case 1 :
                    	    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:82:7: INT
                    	    {
                    	    mINT(); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt1 >= 1 ) break loop1;
                                EarlyExitException eee =
                                    new EarlyExitException(1, input);
                                throw eee;
                        }
                        cnt1++;
                    } while (true);


                    }
                    break;
                case 2 :
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:83:4: ( INT )* '.' ( INT )+
                    {
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:83:4: ( INT )*
                    loop2:
                    do {
                        int alt2=2;
                        int LA2_0 = input.LA(1);

                        if ( ((LA2_0>='0' && LA2_0<='9')) ) {
                            alt2=1;
                        }


                        switch (alt2) {
                    	case 1 :
                    	    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:83:4: INT
                    	    {
                    	    mINT(); 

                    	    }
                    	    break;

                    	default :
                    	    break loop2;
                        }
                    } while (true);

                    match('.'); 
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:83:13: ( INT )+
                    int cnt3=0;
                    loop3:
                    do {
                        int alt3=2;
                        int LA3_0 = input.LA(1);

                        if ( ((LA3_0>='0' && LA3_0<='9')) ) {
                            alt3=1;
                        }


                        switch (alt3) {
                    	case 1 :
                    	    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:83:13: INT
                    	    {
                    	    mINT(); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt3 >= 1 ) break loop3;
                                EarlyExitException eee =
                                    new EarlyExitException(3, input);
                                throw eee;
                        }
                        cnt3++;
                    } while (true);


                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NUM"

    // $ANTLR start "ID"
    public final void mID() throws RecognitionException {
        try {
            int _type = ID;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:86:4: ( ( LETTER | '_' ) ( LETTER | '_' | INT )* )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:86:6: ( LETTER | '_' ) ( LETTER | '_' | INT )*
            {
            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:86:21: ( LETTER | '_' | INT )*
            loop5:
            do {
                int alt5=4;
                switch ( input.LA(1) ) {
                case 'A':
                case 'B':
                case 'C':
                case 'D':
                case 'E':
                case 'F':
                case 'G':
                case 'H':
                case 'I':
                case 'J':
                case 'K':
                case 'L':
                case 'M':
                case 'N':
                case 'O':
                case 'P':
                case 'Q':
                case 'R':
                case 'S':
                case 'T':
                case 'U':
                case 'V':
                case 'W':
                case 'X':
                case 'Y':
                case 'Z':
                case 'a':
                case 'b':
                case 'c':
                case 'd':
                case 'e':
                case 'f':
                case 'g':
                case 'h':
                case 'i':
                case 'j':
                case 'k':
                case 'l':
                case 'm':
                case 'n':
                case 'o':
                case 'p':
                case 'q':
                case 'r':
                case 's':
                case 't':
                case 'u':
                case 'v':
                case 'w':
                case 'x':
                case 'y':
                case 'z':
                    {
                    alt5=1;
                    }
                    break;
                case '_':
                    {
                    alt5=2;
                    }
                    break;
                case '0':
                case '1':
                case '2':
                case '3':
                case '4':
                case '5':
                case '6':
                case '7':
                case '8':
                case '9':
                    {
                    alt5=3;
                    }
                    break;

                }

                switch (alt5) {
            	case 1 :
            	    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:86:22: LETTER
            	    {
            	    mLETTER(); 

            	    }
            	    break;
            	case 2 :
            	    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:86:31: '_'
            	    {
            	    match('_'); 

            	    }
            	    break;
            	case 3 :
            	    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:86:37: INT
            	    {
            	    mINT(); 

            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ID"

    // $ANTLR start "LETTER"
    public final void mLETTER() throws RecognitionException {
        try {
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:90:8: ( ( 'a' .. 'z' | 'A' .. 'Z' ) )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:90:10: ( 'a' .. 'z' | 'A' .. 'Z' )
            {
            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}


            }

        }
        finally {
        }
    }
    // $ANTLR end "LETTER"

    // $ANTLR start "INT"
    public final void mINT() throws RecognitionException {
        try {
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:94:5: ( ( '0' .. '9' )+ )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:94:7: ( '0' .. '9' )+
            {
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:94:7: ( '0' .. '9' )+
            int cnt6=0;
            loop6:
            do {
                int alt6=2;
                int LA6_0 = input.LA(1);

                if ( ((LA6_0>='0' && LA6_0<='9')) ) {
                    alt6=1;
                }


                switch (alt6) {
            	case 1 :
            	    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:94:8: '0' .. '9'
            	    {
            	    matchRange('0','9'); 

            	    }
            	    break;

            	default :
            	    if ( cnt6 >= 1 ) break loop6;
                        EarlyExitException eee =
                            new EarlyExitException(6, input);
                        throw eee;
                }
                cnt6++;
            } while (true);


            }

        }
        finally {
        }
    }
    // $ANTLR end "INT"

    // $ANTLR start "STR_CHARS"
    public final void mSTR_CHARS() throws RecognitionException {
        try {
            int _type = STR_CHARS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:99:2: ( '\"' ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )* '\"' )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:99:4: '\"' ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )* '\"'
            {
            match('\"'); 
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:99:8: ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )*
            loop7:
            do {
                int alt7=3;
                int LA7_0 = input.LA(1);

                if ( (LA7_0=='\\') ) {
                    alt7=1;
                }
                else if ( ((LA7_0>='\u0000' && LA7_0<='!')||(LA7_0>='#' && LA7_0<='[')||(LA7_0>=']' && LA7_0<='\uFFFF')) ) {
                    alt7=2;
                }


                switch (alt7) {
            	case 1 :
            	    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:99:10: ESC_SEQ
            	    {
            	    mESC_SEQ(); 

            	    }
            	    break;
            	case 2 :
            	    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:99:20: ~ ( '\\\\' | '\"' )
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);

            match('\"'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "STR_CHARS"

    // $ANTLR start "ESC_SEQ"
    public final void mESC_SEQ() throws RecognitionException {
        try {
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:104:6: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UNI_ESC | OCT_ESC )
            int alt8=3;
            int LA8_0 = input.LA(1);

            if ( (LA8_0=='\\') ) {
                switch ( input.LA(2) ) {
                case '\"':
                case '\'':
                case '\\':
                case 'b':
                case 'f':
                case 'n':
                case 'r':
                case 't':
                    {
                    alt8=1;
                    }
                    break;
                case 'u':
                    {
                    alt8=2;
                    }
                    break;
                case '0':
                case '1':
                case '2':
                case '3':
                case '4':
                case '5':
                case '6':
                case '7':
                    {
                    alt8=3;
                    }
                    break;
                default:
                    NoViableAltException nvae =
                        new NoViableAltException("", 8, 1, input);

                    throw nvae;
                }

            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;
            }
            switch (alt8) {
                case 1 :
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:104:8: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
                    {
                    match('\\'); 
                    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
                        input.consume();

                    }
                    else {
                        MismatchedSetException mse = new MismatchedSetException(null,input);
                        recover(mse);
                        throw mse;}


                    }
                    break;
                case 2 :
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:105:8: UNI_ESC
                    {
                    mUNI_ESC(); 

                    }
                    break;
                case 3 :
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:106:8: OCT_ESC
                    {
                    mOCT_ESC(); 

                    }
                    break;

            }
        }
        finally {
        }
    }
    // $ANTLR end "ESC_SEQ"

    // $ANTLR start "OCT_ESC"
    public final void mOCT_ESC() throws RecognitionException {
        try {
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:110:9: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
            int alt9=3;
            int LA9_0 = input.LA(1);

            if ( (LA9_0=='\\') ) {
                int LA9_1 = input.LA(2);

                if ( ((LA9_1>='0' && LA9_1<='3')) ) {
                    int LA9_2 = input.LA(3);

                    if ( ((LA9_2>='0' && LA9_2<='7')) ) {
                        int LA9_5 = input.LA(4);

                        if ( ((LA9_5>='0' && LA9_5<='7')) ) {
                            alt9=1;
                        }
                        else {
                            alt9=2;}
                    }
                    else {
                        alt9=3;}
                }
                else if ( ((LA9_1>='4' && LA9_1<='7')) ) {
                    int LA9_3 = input.LA(3);

                    if ( ((LA9_3>='0' && LA9_3<='7')) ) {
                        alt9=2;
                    }
                    else {
                        alt9=3;}
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 9, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 9, 0, input);

                throw nvae;
            }
            switch (alt9) {
                case 1 :
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:110:11: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
                    {
                    match('\\'); 
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:110:16: ( '0' .. '3' )
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:110:17: '0' .. '3'
                    {
                    matchRange('0','3'); 

                    }

                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:110:27: ( '0' .. '7' )
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:110:28: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }

                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:110:38: ( '0' .. '7' )
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:110:39: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }


                    }
                    break;
                case 2 :
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:111:4: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
                    {
                    match('\\'); 
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:111:9: ( '0' .. '7' )
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:111:10: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }

                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:111:20: ( '0' .. '7' )
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:111:21: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }


                    }
                    break;
                case 3 :
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:112:4: '\\\\' ( '0' .. '7' )
                    {
                    match('\\'); 
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:112:9: ( '0' .. '7' )
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:112:10: '0' .. '7'
                    {
                    matchRange('0','7'); 

                    }


                    }
                    break;

            }
        }
        finally {
        }
    }
    // $ANTLR end "OCT_ESC"

    // $ANTLR start "UNI_ESC"
    public final void mUNI_ESC() throws RecognitionException {
        try {
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:116:9: ( '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:116:11: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
            {
            match('\\'); 
            match('u'); 
            mHEX_DIGIT(); 
            mHEX_DIGIT(); 
            mHEX_DIGIT(); 
            mHEX_DIGIT(); 

            }

        }
        finally {
        }
    }
    // $ANTLR end "UNI_ESC"

    // $ANTLR start "HEX_DIGIT"
    public final void mHEX_DIGIT() throws RecognitionException {
        try {
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:121:2: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:121:4: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
            {
            if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}


            }

        }
        finally {
        }
    }
    // $ANTLR end "HEX_DIGIT"

    // $ANTLR start "WS"
    public final void mWS() throws RecognitionException {
        try {
            int _type = WS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:124:4: ( ( ' ' | '\\t' ) )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:124:6: ( ' ' | '\\t' )
            {
            if ( input.LA(1)=='\t'||input.LA(1)==' ' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                recover(mse);
                throw mse;}

             _channel = HIDDEN; 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WS"

    // $ANTLR start "NL"
    public final void mNL() throws RecognitionException {
        try {
            int _type = NL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:127:4: ( ( '\\r' )? '\\n' )
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:127:6: ( '\\r' )? '\\n'
            {
            // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:127:6: ( '\\r' )?
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0=='\r') ) {
                alt10=1;
            }
            switch (alt10) {
                case 1 :
                    // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:127:6: '\\r'
                    {
                    match('\r'); 

                    }
                    break;

            }

            match('\n'); 
             _channel = HIDDEN; 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NL"

    public void mTokens() throws RecognitionException {
        // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:1:8: ( T__23 | T__24 | T__25 | T__26 | T__27 | NUM | ID | STR_CHARS | WS | NL )
        int alt11=10;
        switch ( input.LA(1) ) {
        case '{':
            {
            alt11=1;
            }
            break;
        case '}':
            {
            alt11=2;
            }
            break;
        case '(':
            {
            alt11=3;
            }
            break;
        case ')':
            {
            alt11=4;
            }
            break;
        case '=':
            {
            alt11=5;
            }
            break;
        case '.':
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
            {
            alt11=6;
            }
            break;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case '_':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
            {
            alt11=7;
            }
            break;
        case '\"':
            {
            alt11=8;
            }
            break;
        case '\t':
        case ' ':
            {
            alt11=9;
            }
            break;
        case '\n':
        case '\r':
            {
            alt11=10;
            }
            break;
        default:
            NoViableAltException nvae =
                new NoViableAltException("", 11, 0, input);

            throw nvae;
        }

        switch (alt11) {
            case 1 :
                // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:1:10: T__23
                {
                mT__23(); 

                }
                break;
            case 2 :
                // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:1:16: T__24
                {
                mT__24(); 

                }
                break;
            case 3 :
                // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:1:22: T__25
                {
                mT__25(); 

                }
                break;
            case 4 :
                // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:1:28: T__26
                {
                mT__26(); 

                }
                break;
            case 5 :
                // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:1:34: T__27
                {
                mT__27(); 

                }
                break;
            case 6 :
                // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:1:40: NUM
                {
                mNUM(); 

                }
                break;
            case 7 :
                // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:1:44: ID
                {
                mID(); 

                }
                break;
            case 8 :
                // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:1:47: STR_CHARS
                {
                mSTR_CHARS(); 

                }
                break;
            case 9 :
                // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:1:57: WS
                {
                mWS(); 

                }
                break;
            case 10 :
                // /Users/johnsogg/Projects/sketching-games/src/org/six11/olive3/net/Olive3.g:1:60: NL
                {
                mNL(); 

                }
                break;

        }

    }


    protected DFA4 dfa4 = new DFA4(this);
    static final String DFA4_eotS =
        "\1\uffff\1\3\2\uffff";
    static final String DFA4_eofS =
        "\4\uffff";
    static final String DFA4_minS =
        "\2\56\2\uffff";
    static final String DFA4_maxS =
        "\2\71\2\uffff";
    static final String DFA4_acceptS =
        "\2\uffff\1\2\1\1";
    static final String DFA4_specialS =
        "\4\uffff}>";
    static final String[] DFA4_transitionS = {
            "\1\2\1\uffff\12\1",
            "\1\2\1\uffff\12\1",
            "",
            ""
    };

    static final short[] DFA4_eot = DFA.unpackEncodedString(DFA4_eotS);
    static final short[] DFA4_eof = DFA.unpackEncodedString(DFA4_eofS);
    static final char[] DFA4_min = DFA.unpackEncodedStringToUnsignedChars(DFA4_minS);
    static final char[] DFA4_max = DFA.unpackEncodedStringToUnsignedChars(DFA4_maxS);
    static final short[] DFA4_accept = DFA.unpackEncodedString(DFA4_acceptS);
    static final short[] DFA4_special = DFA.unpackEncodedString(DFA4_specialS);
    static final short[][] DFA4_transition;

    static {
        int numStates = DFA4_transitionS.length;
        DFA4_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA4_transition[i] = DFA.unpackEncodedString(DFA4_transitionS[i]);
        }
    }

    class DFA4 extends DFA {

        public DFA4(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 4;
            this.eot = DFA4_eot;
            this.eof = DFA4_eof;
            this.min = DFA4_min;
            this.max = DFA4_max;
            this.accept = DFA4_accept;
            this.special = DFA4_special;
            this.transition = DFA4_transition;
        }
        public String getDescription() {
            return "82:1: NUM : ( ( INT )+ | ( INT )* '.' ( INT )+ );";
        }
    }
 

}